perm filename EMACS.CMD[UP,DOC] blob sn#408700 filedate 1979-01-07 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00011 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	↑R Commands defined in the EMACS editor (as of 08/21/78):
C00005 00003	Control-α
C00017 00004	Control-X
C00035 00005	Meta-	is undefined.
C00053 00006	Control-Meta-
C00068 00007	Commands in file EMACS:
C00105 00008	Commands in file PURIFY:
C00109 00009	Commands in file TAGS:
C00113 00010	Commands in file ABSTR:
C00115 00011	Commands in file GRIND:
C00117 ENDMK
C⊗;
↑R Commands defined in the EMACS editor (as of 08/21/78):
   Commands not listed here are self-inserting,
   illegal, or trivial aliases of other commands
   (as, Control-x for Control-X, or Control-I for Tab).

Backspace
	moves back one character (or several).

Tab	runs the macro ↑R Indent According to Mode
	Indents suitably for the language you are using.
	In fundamental mode, just inserts a Tab.

Linefeed
	runs the macro ↑R Indent New Line
	Inserts CRLF, then indents the second line.
	Any spaces before the inserted CRLF are deleted.
	Uses the definitions of CR and Tab to do the work,
	except that if there is a Fill Prefix it is used to indent.
	An argument is passed on to the definition of Tab.

Return	runs the macro ↑R CRLF
	Insert CRLF, or move onto blank line.
	A blank line is one containing only spaces and tabs
	(which are killed if we move onto it).  In auto-fill mode, we may
	break the line before the last word.  A pre-comma arg inhibits this.

Altmode	runs the macro ↑R Prefix Meta
	Sets Meta-bit of following character. 
	It followed by an A is equivalent to a Meta-A.
	If the Metizer character is Altmode, then metizing a ↑A
	creates a Control-Meta-A.  If the metizer is not Altmode,
	then metizing a ↑A makes a plain Meta-A.
	Given a first argument (as in "33,"), returns the
	metized character;  otherwise, executes its definition.
	The value of the arg should be the metizer character itself
	so we can tell whether it was an altmode.
Control-α
	runs the macro ↑R Complement SAIL Mode
	Start or stop printing the SAIL character set.

Control-Altmode
	exits from ↑R mode.

Control-Space
	runs the macro ↑R Set/Pop Mark
	Sets or pops the ↑R-mode mark.
	With no ↑U's, pushes . as the mark.
	With one ↑U, pops the mark into .
	With two ↑U's, pops the mark and throws it away.

Control-%
	runs the macro ↑R Replace String
	Replace string with another.  Reads args with minibuffer.
	Calls the Replace String command. 

Control-;
	runs the macro ↑R Indent for Comment
	Move to or create comment.
	Finds start of existing comment, or creates one at end of line.
	Indents the comment to Q}Comment Column}.
	With argument <n>, aligns the existing comments in the
	next <n> lines, but does not create comments.
	Q}Comment Begin} holds the string inserted to start a comment.
	Q}Comment Start} holds the string recognized as starting an old one.
	Q}Comment Rounding} holds the macro used when the code goes
	past the comment column, to compute a new (larger) comment column
	from the width of the code (default is "+1").

Control-<
	runs the macro ↑R Mark Beginning
	Set mark at beginning of buffer.

Control-=
	runs the macro ↑R Where Am I
	Print various things about where cursor is.
	Print the X position, the Y position,
	the octal code for the following character,
	point absolutely and as a percentage of the total file size,
	and the virtual boundaries, if any.

Control->
	runs the macro ↑R Mark End
	Set mark at end of buffer.

Control-@
	runs the macro ↑R Set/Pop Mark
	Sets or pops the ↑R-mode mark.
	With no ↑U's, pushes . as the mark.
	With one ↑U, pops the mark into .
	With two ↑U's, pops the mark and throws it away.

Control-A
	runs the macro ↑R Beginning of Real Line
	Go to beginning of real line (after last CRLF).

Control-B
	moves back one character (or several).

Control-C
	runs the macro ↑R Prefix Control-Meta
	Sets Control- and Meta-bits of following character.
	It, followed by an A (or a Control-A),
	is equivalent to a Control-Meta-A.  Given a first argument
	(as in "1,"), returns the metized character;  otherwise,
	executes its definition.

Control-D
	deletes one character (or several) forward.

Control-E
	runs the macro ↑R End of Real Line
	Go to end of real line (before next CRLF).

Control-F
	moves forward one character (or several).

Control-G
	quits execution of any command.
	Throws away any argument.

Control-K
	runs the macro ↑R Kill Line
	Kill to end of line, or kill an end of line.
	Before a CRLF, the CRLF is killed.
	Otherwise, everything up to the next CRLF is killed.
	With argument (positive or negative), kill specified number of lines.
	Killed text is pushed onto ..K for retrieval.

Control-L
	runs the macro ↑R New Window
	Choose new window putting point at center, top or bottom.
	With no argument, chooses a window to put point at the center
	(FS %CENTER} says where).  An argument gives the line to put
	point on;  negative args count from the bottom.

Control-M
	is the same as in a bare TECO.

Control-N
	runs the macro ↑R Down Real Line
	Move down vertically to next real line.
	Continuation lines are skipped.  If given after the
	last LF in the buffer, makes a new one at the end.

Control-O
	inserts one CRLF (or several) after point.
	Thus, point does not move.

Control-P
	runs the macro ↑R Up Real Line
	Move up vertically to next real line.
	Continuation lines are skipped.

Control-Q
	runs the macro ↑R Quoted Insert
	Reads a character and inserts it.

Control-R
	runs the macro ↑R Reverse Search
	Incremental Search Backwards.
	Calls Incremental Search with a negative argument.

Control-S
	runs the macro ↑R Incremental Search
	Search for character string.
	As characters are typed in, the accumulated string is
	searched for.  Characters may be rubbed out.
	↑Q quotes special characters.
	↑S repeats the search, forward, and ↑R repeats it backward.
	If the accumulated string is empty, ↑R or ↑S either
	reverses the direction of search or gobbles the previous
	search string and searches for it again.
	Altmode or any random control character exits
	(anything but altmode is then executed).
	If the accumulated string fails to be found,
	you will be notified with one bell.  You can then exit,
	rub the bad characters out (or ↑G them all away),
	or try searching in the opposite direction.
	Quitting a successful search goes back to the starting
	point of the search;  quitting a failing search rubs out
	enough characters to make it successful again.
	Altmode when the string is empty makes the search
	non-incremental by calling ↑R String Search.

Control-T
	runs the macro ↑R Exchange Characters
	Interchange the characters before and after the cursor.
	With a positive argument it interchanges the characters before and
	after the cursor, moves right, and repeats the specified number of
	times, dragging the character to the left of the cursor right.  With a
	negative argument, it interchanges the two characters to the left of
	the cursor, moves between them, and repeats the specified number of
	times, exactly undoing the positive argument form.  With a zero
	argument, it interchanges the characters at point and mark.
	No argument is like an argument of 1, except at the end of a line
	the previous two characters are interchanged.

Control-U
	runs the macro ↑R Universal Argument
	Sets argument or multiplies it by four.
	Followed by digits, uses them to specify the
	argument for the command after the digits.
	Not followed by digits, multiplies the argument by four.

Control-V
	runs the macro ↑R Next Screen
	Move down to display next screenful of text.
	With argument, moves window down <arg> lines.

Control-W
	runs the macro ↑R Kill Region
	Kill from pointer to mark.
	Killed text is pushed onto ..K for retrieval.

Control-Y
	runs the macro ↑R Un-kill
	Re-insert the last stuff killed.
	Puts point after it and the mark before it.
	An argument n says un-kill the n'th most recent
	string of killed stuff (1 = most recent).

Control-Z
	runs the macro ↑R Prefix Control-Meta
	Sets Control- and Meta-bits of following character.
	It, followed by an A (or a Control-A),
	is equivalent to a Control-Meta-A.  Given a first argument
	(as in "1,"), returns the metized character;  otherwise,
	executes its definition.

Control-\
	runs the macro ↑R Prefix Meta
	Sets Meta-bit of following character. 
	It followed by an A is equivalent to a Meta-A.
	If the Metizer character is Altmode, then metizing a ↑A
	creates a Control-Meta-A.  If the metizer is not Altmode,
	then metizing a ↑A makes a plain Meta-A.
	Given a first argument (as in "33,"), returns the
	metized character;  otherwise, executes its definition.
	The value of the arg should be the metizer character itself
	so we can tell whether it was an altmode.

Control-]
	is the same as in a bare TECO.

Control-↑
	runs the macro ↑R Prefix Control
	Sets Control-bit of following character.
	It followed by an = is equivalent to a Control-=.
	Given a first argument (as in "1,"), returns the
	controlified character;  otherwise, executes its
	definition.
Control-X
	is an escape prefix command with these subcommands:

  ↑X ↑B runs the macro List Buffers
	List numbers, names, files and modes of all buffers.
  ↑X ↑C runs the macro ↑R Return to Superior
	Go back to TECO's controlling job.
	With argument, saves the buffer first.
  ↑X ↑D runs the macro ↑R Directory Display
	Display current buffer's file's directory.
	Uses whatever directory display macro the user has
	selected (put in Q}Directory Lister}).  With non-zero argument, use the
	minbuffer to specify the directory with ET.
  ↑X ↑E runs the macro ↑R Edit File
	Visit file, writing back changes automatically.
	If you alter the file, then the next attempt to read in a file
	will save this one automatically.  Also, auto saving will save
	using the file's real name, if possible.
  ↑X ↑F runs the macro ↑R Find File
	Visit a file in its own buffer.
	A nonzero argument inhibits auto saving for this file.
  ↑X Tab runs the macro ↑R Indent Rigidly
	Shift text in region sideways as a unit.
	All the lines in the region (first character between point and mark)
	have their indentation incremented by the numeric argument
	of this command (which may be negative).
  ↑X ↑L runs the macro ↑R Lowercase Region
	Convert point to mark to lower case.
  ↑X ↑N runs the macro ↑R Set Goal Column
	Set (or flush) a permanent goal for vertical motion.
	With no argument, makes the current column the goal for vertical
	motion commands.  They will always try to go to that column.
	With argument, clears out any previously set goal.  Only
	the ↑R Up Real Line and Down Real Line macros are affected.
  ↑X ↑O runs the macro ↑R Delete Blank Lines
	Kill all blank lines around this line's end.
	If done on a non-blank line, kills all spaces and tabs
	at the end of it, and all following blank lines
	(Lines are blank if they contain only spaces and tabs).
	If done on a blank line, deletes all preceding blank lines as well.
  ↑X ↑P runs the macro ↑R Mark Page
	Put point at top of page, mark at end.
	At the beginning of a page, go to the next page.
	A numeric arg specifies the page: 0 for current, 1 for next,
	-1 for previous, larger numbers to move many pages.
	q}Page Delimiter} may contain the string used to
	separate pages (or several alternatives, separated by ↑O).
  ↑X ↑Q runs the macro ↑R Do Not Write File
	Don't write back this buffer automatically.
	The next time a file is read into this buffer, it will
	not be written out to its old file.  If you change your mind about
	some editing, you can give this command, then visit some other
	file (Alternatively, use MM Revert File).
	With argument, switches to automatic write-back mode.
  ↑X ↑R runs the macro ↑R Read File
	Read file, no automatic writing.
	The filenames are read from the TTY.
	Changes made will not be written back unless you
	give an explicit command.
  ↑X ↑S runs the macro ↑R Save File
	Save buffer on disk if modified.
	Auto Save mode uses this macro.
	If auto-saving is enabled, then we write to filenames read
	or to a separate auto-save filename.  If auto-saving is off,
	or if given an argument, we always write to the filenames read.
	"1," as argument indicates that this call was not explicitly
	requested, and the user should be asked to confirm if
	the file has become a lot smaller.
  ↑X ↑T runs the macro ↑R Mini Visited File
	Minibuffer setting defaults to buffer filenames.
	With no argument, runs a minibuffer initialized with
	an ET command containing the current buffer's filenames.
	Thus, the default filenames get set to the buffer filenames.
	With an argument, puts the old defaults in the ET.
	This doesn't change the defaults;  it just shows them.
  ↑X ↑U runs the macro ↑R Uppercase Region
	Convert point to mark to upper case.
  ↑X ↑V runs the macro ↑R Visit File
	Visit file, asking about writing back changes.
	If you alter the file, then the next attempt to read in a file
	will ask whether you want this one written back out.
  ↑X ↑W runs the macro Write File
	Change buffer filenames and write out.
	Follow by filename as string argument.  "1," says called by ↑X↑S;
	inhibits calling & Set Mode Line and auto-save reinitialization.
	Also inhibits setting filenames (in case they are ←↑RSV).
	"-1," as argument inhibits updating the buffer's file cdate as well.
	If not at top level (can't switch files now),
	doesn't update anything about the current buffer,
	but does return the written file's creation date so the caller can store it.
  ↑X ↑X runs the macro ↑R Exchange Point and Mark
	Exchange pointer and mark.
  ↑X ↑Z runs the macro ↑R Return to Superior
	Go back to TECO's controlling job.
	With argument, saves the buffer first.
  ↑X Altmode runs the macro ↑R Re-execute Minibuffer
	Re-execute the last minibuffered commands.
	With a numeric argument N, re-executes the N'th most recent minibuffer.
  ↑X # runs the macro ↑R Change Font Region
	Puts the region in a different font (R).
	The font to change to is specified with a numeric argument.
	Inserts ↑F<n> before and ↑F* after.
	A negative arg removes font changes in or next to region.
  ↑X . runs the macro ↑R Set Fill Prefix
	Defines Fill Prefix from current line.
	All of the current line up to point becomes the value
	of Q}Fill Prefix}.  Auto Fill Mode and ↑J insert the
	prefix on each line;  Fill Region assumes that each
	non-blank line starts with the prefix (which is ignored
	for filling purposes).
	To stop using a Fill Prefix, do ↑R Set Fill Prefix
	at the front of a line.
  ↑X 1 runs the macro ↑R One Window
	Display only one window.
	Normally, we display what used to be in the top window,
	but a numeric argument says to display what was in the bottom one.
  ↑X 2 runs the macro ↑R Two Windows
	Show two windows and select window two.
	An argument > 1 means give window 2 the same buffer as in Window 1.
	A pre-comma argument means keep the cursor in window 1.
  ↑X 3 runs the macro ↑R View Two Windows
	Show two windows but stay in first.
  ↑X : runs the macro ↑R Set Column
	Set some column variable to current column.
	Reads the name of the column variable to set from the terminal.
  ↑X ; runs the macro ↑R Set Comment Column
	Set comment column to current hpos.
	With argument, sets comment column from position of previous comment
	and then makes or moves a comment to that position on this line.
  ↑X = runs the macro ↑R Where Am I
	Print various things about where cursor is.
	Print the X position, the Y position,
	the octal code for the following character,
	point absolutely and as a percentage of the total file size,
	and the virtual boundaries, if any.
  ↑X A runs the macro ↑R Append to Buffer
	Append region to specified buffer.
	The buffer's name is read from the tty;  it is created if nonexistent.
	A numeric argument causes us to "prepend" instead.
	We always insert the text at that buffer's pointer, but when
	"prepending" we leave the pointer before the inserted text.
  ↑X B runs the macro Select Buffer
	Select or create buffer, given its name.
	If called from a ↑R character, read the buffer name from the terminal
	or should be given a buffer number as a numeric arg.
	As a subroutine, needs a buffer number (or buffer name pointer) as a
	prefix arg, or a buffer name as a string arg.
	If there is a buffer with that name, it is selected.
	Otherwise, a buffer with that name is created and selected.
	When a new buffer is selected the first time, if Q}Buffer Creation Hook}
	is nonzero, it is run after the buffer is selected.
  ↑X D runs the macro ↑R Dired
	Run MM Dired } for the directory of the current buffer file.
	With no argument, edits that directory.
	With an argument of 1, shows only the versions of the file in the buffer.
	With an argument of 4, asks for input, only versions of that file are shown.
  ↑X F runs the macro ↑R Set Fill Column
	Set fill column to current hpos.
  ↑X G runs the macro ↑R Get Q-reg
	Get contents of Q-reg (reads name from tty).
	Usually leaves the pointer before, and the mark after, the text.
	With argument, puts point after and mark before.
	When used as a subroutine, if this macro is given
	an argument before a comma, that argument becomes
	the first character of the q-reg name.
  ↑X I runs the macro ↑R Info
	MM Info} with null argument.
  ↑X K runs the macro Kill Buffer
	Kill the buffer with specified name.
	Takes name as a string (suffix) argument, or reads it from terminal.
	Alternatively, the name (as string pointer) or the buffer
	number may be given as a prefix argument.
	If the buffer has changes in it, we offer to write it out.
  ↑X L runs the macro ↑R Count Lines Page
	Type number of lines on this page.
	Also add, in parentheses, the number of lines on the page
	before point, and the number of lines after point.
  ↑X M runs the macro Mail
	Mail a message, with RMAIL's M option.
	Lets you edit a message with ↑R, then send it when you
	exit the ↑R.  Use ↑G to abort the message, after which
	MM Mail with an argument will re-enter.  Put the text
	of the message after the line which says
	--Text follows this line--.  Before that line can go only
	header items, like the "From:" that is provided for you.
  ↑X N runs the macro ↑R Set Bounds Region
	Narrow buffer bounds to point and mark.
  ↑X O runs the macro ↑R Other Window
	Switch to the other window.
	If both windows are showing, the pointer moves into the
	other one.  If only window 1 is visible, then the
	windows are exchanged:  what used to be in window 2
	(invisible) is now in window 1 (visible), and vice versa.
	An argument means switch windows but select the same
	buffer in the other window.
  ↑X P runs the macro ↑R Set Bounds Page
	Narrow buffer bounds to one page.
	Numeric arg specifies which page:  0 means this one,
	1 means the next one, -1 means the previous one.
	No arg means next page, or current page if bounds are wide open.
	Args larger than one move several pages.
	q}Page Delimiter} may contain the string used to
	separate pages (or several alternatives, separated by ↑O).
  ↑X R runs the macro ↑R RMAIL
	Read mail.  See topic RMAIL in INFO.
	Uses a null command string for RMAIL.
	Good for re-entering after exiting RMAIL with ↑X.
  ↑X W runs the macro ↑R Set Bounds Full
	Widen virtual bounds to whole buffer.
  ↑X X runs the macro ↑R Put Q-reg
	Put point to mark into q-reg (reads name from tty).
	With an argument, the text is also deleted.
	When used as a subroutine, if this macro is given
	an argument before a comma, that argument becomes
	the first character of the q-reg name.
  ↑X ↑ runs the macro ↑R Grow Window
	Make this window (or minibuffer) use more lines.
	Argument is number of extra lines (can be negative).
  ↑X ← runs the macro ↑R Underline Region
	Puts underlines a la R around the region.
	A negative argument removes underlines in or next to region.
	Q}Underline Begin} and Q}Underline End} may be set to the strings
	to be used to begin and end underlines.
Meta-	is undefined.

Meta-↓	is undefined.

Meta-α	is undefined.

Meta-β	is undefined.

Meta-∧	is undefined.

Meta-¬	is undefined.

Meta-ε	is undefined.

Meta-π	is undefined.

Meta-Backspace
	is undefined.

Meta-Linefeed
	runs the macro ↑R Indent New Comment Line
	Inserts CRLF, then starts new comment.
	If done when not in a comment, acts like ↑R Indent New Line.
	Q}Comment End} is inserted to terminate a comment.

Meta-	is undefined.

Meta-
	is undefined.

Meta-Return
	runs the macro ↑R Back to Indentation
	Move to end of this line's indentation.

Meta-∞	is undefined.

Meta-∂	is undefined.

Meta-⊂	is undefined.

Meta-⊃	is undefined.

Meta-∩	is undefined.

Meta-∪	is undefined.

Meta-∀	is undefined.

Meta-∃	is undefined.

Meta-⊗	is undefined.

Meta-↔	is undefined.

Meta-_	is undefined.

Meta-→	is undefined.

Meta-~	is undefined.

Meta-Altmode
	runs the macro ↑R Execute Minibuffer
	Read and run TECO commands.
	Uses the minibuffer to read them.  Pushes the command string
	onto a ring buffer in Q.N.  An explicit argument initializes
	the minibuffer with the command from the top of that ring buffer.
	Once inside the minibuffer, C-M-Y pops to previous saved
	minibuffer commands, going around the ring.

Meta-≤	is undefined.

Meta-≥	is undefined.

Meta-≡	is undefined.

Meta-∨	is undefined.

Meta-Space
	is undefined.

Meta-!	is undefined.

Meta-"	is undefined.

Meta-#	runs the macro ↑R Change Font Word
	Puts the previous word in a different font (R).
	The font to change to is specified with a numeric argument.
	No arg means move last font change forward past next word.
	A negative arg means move last font change back one word.

Meta-$	is undefined.

Meta-%	runs the macro ↑R Query Replace
	Query Replace string macro using the minibuffer.
	Calls the Query Replace command. 

Meta-&	is undefined.

Meta-'	is undefined.

Meta-(	runs the macro ↑R Make ()
	Insert () putting point between them.
	Also make a space before them if appropriate.
	With argument, put the ) after the specified number
	of already existing s-expressions.  Thus, with argument 1,
	puts extra parens around the following s-expression.

Meta-)	runs the macro ↑R Move Over )
	Move over a ), updating indentation.
	Any indentation before the ) is deleted.
	LISP-style indentation is inserted after the ).

Meta-*	is undefined.

Meta-+	is undefined.

Meta-,	is undefined.

Meta-.	runs the macro ↑R Find Tag
	Jump to the definition of a tag.
	This version loads the TAGS package and then calls it.

Meta-/	runs the macro ↑R Describe
	Describes a ↑R command.
	The command character is read from the terminal.
	Alternatively, the command char and definition may be fed as
	numeric args, in which case the character's name is not printed.

Meta-:	is undefined.

Meta-;	runs the macro ↑R Indent for Comment
	Move to or create comment.
	Finds start of existing comment, or creates one at end of line.
	Indents the comment to Q}Comment Column}.
	With argument <n>, aligns the existing comments in the
	next <n> lines, but does not create comments.
	Q}Comment Begin} holds the string inserted to start a comment.
	Q}Comment Start} holds the string recognized as starting an old one.
	Q}Comment Rounding} holds the macro used when the code goes
	past the comment column, to compute a new (larger) comment column
	from the width of the code (default is "+1").

Meta-<	runs the macro ↑R Goto Beginning
	Go to beginning of buffer (leaving mark behind).
	With arg from 0 to 10, goes that many tenths of the file
	down from the beginning.

Meta-=	runs the macro ↑R Count Lines Region
	Type number of lines from point to mark.

Meta->	runs the macro ↑R Goto End
	Go to end of buffer (leaving mark behind).
	With arg from 0 to 10, goes up that many tenths of the file from the end.

Meta-?	runs the macro ↑R Describe
	Describes a ↑R command.
	The command character is read from the terminal.
	Alternatively, the command char and definition may be fed as
	numeric args, in which case the character's name is not printed.

Meta-@	runs the macro ↑R Mark Word
	Set mark 1 (or n) words from point.

Meta-A	runs the macro ↑R Backward Sentence
	Move to beginning of sentence.
	A sentence is ended by a ., ? or ! followed by
	two spaces or a CRLF (with optional space), with
	any number of "closing characters" ", ', ) and ] between.
	A sentence also starts after a blank line.

Meta-B	runs the macro ↑R Backward Word
	Move backward over one word

Meta-C	runs the macro ↑R Uppercase Initial
	Put next word in lower case, but capitalize initial.

Meta-D	runs the macro ↑R Kill Word
	Kill next word.

Meta-E	runs the macro ↑R Forward Sentence
	Move to end of this sentence.
	A sentence is ended by a ., ? or ! followed by
	two spaces or a CRLF (with optional space), with
	any number of "closing characters" ", ', ) and ] between.
	A sentence also ends before a blank line.

Meta-F	runs the macro ↑R Forward Word
	Move forward over one word

Meta-G	runs the macro ↑R Fill Region
	Fill text from point to mark.
	Q}Fill Column} specifies the desired text width.
	An explicit positive argument causes adjusting instead of filling.
	A negative argument causes "un-filling":  removal of excess spaces.

Meta-H	runs the macro ↑R Mark Paragraph
	Put point and mark around this paragraph.
	In between paragraphs, puts it around the next one.  See documentation
	on ↑R Backward Paragraph for paragraph definition.

Meta-I	runs the macro ↑R Tab to Tab Stop
	Insert filling till next tab stop.
	Filling may be whitespace, or an arbitrary pattern of characters,
	controlled by Q}Tab Stop Definitions}, which has two lines.
	The second line has spaces except at the tab stop columns.
	A colon indicates a tab stop to be filled to with indentation;
	a period indicates a tab stop to be filled to by copying the
	characters from the first line above the horizontal positions
	to be filled.

Meta-J	runs the macro ↑R Indent New Comment Line
	Inserts CRLF, then starts new comment.
	If done when not in a comment, acts like ↑R Indent New Line.
	Q}Comment End} is inserted to terminate a comment.

Meta-K	runs the macro ↑R Kill Word
	Kill next word.

Meta-L	runs the macro ↑R Lowercase Word
	Convert one word to lower case, moving past it.

Meta-M	runs the macro ↑R Back to Indentation
	Move to end of this line's indentation.

Meta-N	runs the macro ↑R Down Comment Line
	Move to start of next line's comment.
	Equivalent to ↑R Down Real Line followed by ↑R Indent For Comment.

Meta-O	is undefined.

Meta-P	runs the macro ↑R Up Comment Line
	Move to start of previous line's comment.
	Equivalent to ↑R Up Real Line followed by ↑R Indent For Comment.

Meta-Q	runs the macro ↑R Fill Paragraph
	Fill (or adjust) this (or next) paragraph.
	Point stays the same (but text may move past it due to filling).
	A positive numeric argument says adjust rather than fill.
	A negative argument says un-fill by removing excess spaces.

Meta-R	runs the macro ↑R Move to Screen Edge
	Jump to top or bottom of screen.
	Like ↑R New Window except that point is changed instead of the window.
	With no argument, jumps to the center, according to FS %CENTER}.
	An argument specifies the number of lines from the top,
	(negative args count from the bottom).

Meta-S	runs the macro ↑R Center Line
	Center this line's text within the line.
	With argument, centers that many lines and moves past.
	The width is Q}Fill Column}, or if that is zero, FS Width}-10.

Meta-T	runs the macro ↑R Exchange Words
	Interchange the words before and after the cursor.
	With a positive argument it interchanges the words before and
	after the cursor, moves right, and repeats the specified number of
	times, dragging the word to the left of the cursor right.  With a
	negative argument, it interchanges the two words to the left of
	the cursor, moves between them, and repeats the specified number of
	times, exactly undoing the positive argument form.  With a zero
	argument, it interchanges the words at point and mark.

Meta-U	runs the macro ↑R Uppercase Word
	Convert one word to upper case, moving past it.

Meta-V	runs the macro ↑R Previous Screen
	Move up to display previous screenful of text.
	With arg, move window back <arg> lines.

Meta-W	runs the macro ↑R Copy Region
	Stick region into kill-ring without killing it.
	Like killing and getting back, but doesn't mark buffer modified.

Meta-X	runs the macro ↑R Execute Completed MM Command
	Read an MM command from the terminal with completion.
	This command prompts at the bottom of the screen with "MM " and reads the
	name of an EMACS command.  Name completion is done as the command name is
	typed (for more information type the HELP key when typing the command name).
	Once the command name is read a } is printed and arguments to the command are
	read.  No completion is done when typing the arguments.
	Internals:
	Uses & Read Command Name and & Read Line to echo at bottom of screen.
	If the variable }Read Command Prompt} exists it specifies the prompt string;
	otherwise "MM " is used.  A numeric argument is passed along to the MM
	command.  The command string is saved on the minibuffer ring
	so that ↑R Re-execute Mini will redo it, and ↑R Execute Mini
	with argument will get it back for editing.

Meta-Y	runs the macro ↑R Un-kill Pop
	Correct a ↑R Un-kill to use an earlier kill.
	Requires that the region contain the most recent killed stuff
	(as it does after a ↑R Un-kill), and replaces that with the
	previous killed stuff, which is rotated to the front of
	the ring buffer in ..K.  With 0 as argument, just deletes the
	region with no replacement (but only if just after an Un-kill).

Meta-Z	is undefined.

Meta-[	runs the macro ↑R Backward Paragraph
	Move to start of this (or last) paragraph.
	A blank line followed by a nonblank one starts a paragraph.
	A line whose predecessor is nonblank starts a paragraph
	if its first character is matched by the TECO search string
	in the variable Q}Paragraph Delimiter} or the one in Q}Page Delimiter}.
	Specially, if Q}Paragraph Delimiter} starts with a ".", then any line
	which starts with a "." is a paragraph unto itself.

Meta-\	runs the macro ↑R Delete Horizontal Space
	Delete all spaces and tabs around point.

Meta-]	runs the macro ↑R Forward Paragraph
	Move to start of next paragraph.
	See documentation on ↑R Backward Paragraph.

Meta-↑	runs the macro ↑R Delete Indentation
	Kill CRLF and indentation at front of line.
	Leaves one space in place of them.  With argument,
	moves down one line first (killing CRLF after current line).

Meta-←	runs the macro ↑R Underline Word
	Puts underlines around the previous word (R).
	If there is an underline begin or end near that word,
	it is moved forward one word.
	An argument specifies the number of words, and the direction:
	positive means forward.

Meta-`	is undefined.

Meta-{	is undefined.

Meta-|	is undefined.

Meta-}	is undefined.

Meta-~	runs the macro ↑R Not Modified
	Pretend that this buffer hasn't been altered.

Meta-Rubout
	runs the macro ↑R Backward Kill Word
	Kill last word.
Control-Meta-
	is undefined.

Control-Meta-↓
	is undefined.

Control-Meta-α
	is undefined.

Control-Meta-β
	is undefined.

Control-Meta-∧
	is undefined.

Control-Meta-¬
	is undefined.

Control-Meta-ε
	is undefined.

Control-Meta-π
	is undefined.

Control-Meta-Backspace
	runs the macro ↑R Mark Defun
	Put point and mark around this DEFUN (or next).

Control-Meta-Tab
	runs the macro ↑R Indent for LISP
	Indent this line to make ground LISP code.
	At column Q}LISP Wrap Column} (default infinite) we wrap around
	to column 1 (not 0!).  When you go down a level in list structure,
	if Q}LISP Indent Offset} is zero, we indent under the first argument;
	if it is nonzero, we indent that many columns past the (.
	A pre-comma arg means return the appropriate indentation level
	but don't actually change the indentation, and don't treat ;;; comments
	specially.

Control-Meta-
	is undefined.

Control-Meta-
	is undefined.

Control-Meta-Return
	runs the macro ↑R Back to Indentation
	Move to end of this line's indentation.

Control-Meta-∞
	is undefined.

Control-Meta-∂
	is undefined.

Control-Meta-⊂
	is undefined.

Control-Meta-⊃
	is undefined.

Control-Meta-∩
	is undefined.

Control-Meta-∪
	is undefined.

Control-Meta-∀
	is undefined.

Control-Meta-∃
	is undefined.

Control-Meta-⊗
	is undefined.

Control-Meta-↔
	is undefined.

Control-Meta-_
	is undefined.

Control-Meta-→
	is undefined.

Control-Meta-~
	is undefined.

Control-Meta-Altmode
	inserts itself.

Control-Meta-≤
	is undefined.

Control-Meta-≥
	is undefined.

Control-Meta-≡
	is undefined.

Control-Meta-∨
	is undefined.

Control-Meta-Space
	is undefined.

Control-Meta-!
	is undefined.

Control-Meta-"
	is undefined.

Control-Meta-#
	is undefined.

Control-Meta-$
	is undefined.

Control-Meta-%
	is undefined.

Control-Meta-&
	is undefined.

Control-Meta-'
	is undefined.

Control-Meta-(
	runs the macro ↑R Backward Up List
	Move up one level of list structure, backward.

Control-Meta-)
	runs the macro ↑R Forward Up List
	Move up one level of list structure, forward.

Control-Meta-*
	is undefined.

Control-Meta-+
	is undefined.

Control-Meta-,
	is undefined.

Control-Meta-.
	is undefined.

Control-Meta-/
	is undefined.

Control-Meta-:
	is undefined.

Control-Meta-;
	runs the macro ↑R Kill Comment
	Kills the comment (if any) on the current line.

Control-Meta-<
	is undefined.

Control-Meta-=
	is undefined.

Control-Meta->
	is undefined.

Control-Meta-?
	runs the macro ↑R Documentation
	Run a specified documentation macro.
	You type a character.  To get a basic introduction to EMACS, type B.
	To find out what a certain character does, type C and that character.
	To find out what a named command does, type D and the command name.
	To find all commands whose names contain a certain keyword,
	  type A and then the keyword.
	To find out the last 60 characters you typed, if you are confused, type L.
	To run the INFO program for detailed documentation, type I.
	More advanced options:
	  T - run TECDOC; V - run Variable Apropos; W - run Where Is;
	  M - print the contents of the mode line (for printing ttys).
	  SPACE repeats most recent A, D, T, V or W request.

Control-Meta-@
	runs the macro ↑R Mark Sexp
	Set mark 1 (or n) s-expressions from point.

Control-Meta-A
	runs the macro ↑R Beginning of DEFUN
	Move to beginning of this or previous DEFUN.
	Leaves the mark behind, in case typed by accident.
	With a negative argument, moves forward to the beginning of a DEFUN.
	The beginning of a DEFUN is any ( in column 0.

Control-Meta-B
	runs the macro ↑R Backward Sexp
	Move backward past one S-expression (or several).

Control-Meta-C
	exits from ↑R mode.

Control-Meta-D
	runs the macro ↑R Down List
	Move down one level of list structure, forward.

Control-Meta-E
	runs the macro ↑R End of DEFUN
	Move to end of this or next DEFUN.
	Leaves the mark behind, in case typed by accident.
	With argument of 2, finds end of following DEFUN.
	With argument of -1, finds end of previous DEFUN, etc.
	A DEFUN is a list whose ( falls in column 0.
	Its end is after the CRLF following its ).

Control-Meta-F
	runs the macro ↑R Forward Sexp
	Move forward past one S-expression (or several).

Control-Meta-G
	runs the macro ↑R Format Code
	Calls Grind Sexp or MACSYMA Grind depending on the current MODE.

Control-Meta-H
	runs the macro ↑R Mark Defun
	Put point and mark around this DEFUN (or next).

Control-Meta-I
	runs the macro ↑R Indent for LISP
	Indent this line to make ground LISP code.
	At column Q}LISP Wrap Column} (default infinite) we wrap around
	to column 1 (not 0!).  When you go down a level in list structure,
	if Q}LISP Indent Offset} is zero, we indent under the first argument;
	if it is nonzero, we indent that many columns past the (.
	A pre-comma arg means return the appropriate indentation level
	but don't actually change the indentation, and don't treat ;;; comments
	specially.

Control-Meta-K
	runs the macro ↑R Kill Sexp
	Kill next s-expression.

Control-Meta-M
	runs the macro ↑R Back to Indentation
	Move to end of this line's indentation.

Control-Meta-N
	runs the macro ↑R Forward List
	Move forward past one list (or several).

Control-Meta-O
	runs the macro ↑R Split Line
	Move rest of this line vertically down.
	Inserts a CRLF, and then enough tabs/spaces so that
	what had been the rest of the current line is indented as much as
	it had been.  Point does not move, except to skip over indentation
	that originally followed it. 
	With argument, makes extra blank lines in between.

Control-Meta-P
	runs the macro ↑R Backward List
	Move backward past one list (or several).

Control-Meta-Q
	runs the macro ↑R Indent SEXP
	Lisp Indent all lines containing the next s-expr.
	Used when full grinding is not desirable.
	A numeric argument temporarily sets LISP Indent Offset.
	A pre-comma argument means indent this line and all
	remaining lines up to Z (used by <n>Tab as subroutine).

Control-Meta-R
	runs the macro ↑R Reposition Window
	Reposition screen window appropriately.
	Tries to get all of current paragraph, defun, etc. on screen.
	Never moves the pointer; only wins if FS %TOP and FS %BOTTOM are zero.

Control-Meta-S
	is undefined.

Control-Meta-T
	runs the macro ↑R Exchange Sexps
	Interchange the S-expressions before and after the cursor.
	With a positive argument it interchanges the S-expressions before and
	after the cursor, moves right, and repeats the specified number of
	times, dragging the S-expression to the left of the cursor right.  With a
	negative argument, it interchanges the two S-expressions to the left of
	the cursor, moves between them, and repeats the specified number of
	times, exactly undoing the positive argument form.  With a zero
	argument, it interchanges the S-expressions at point and mark.

Control-Meta-U
	runs the macro ↑R Backward Up List
	Move up one level of list structure, backward.

Control-Meta-V
	is undefined.

Control-Meta-W
	runs the macro ↑R Append Next Kill
	Make following kill commands append to last batch.
	Thus, ↑K↑K, cursor motion, this command, and ↑K↑K,
	generate one block of killed stuff, containing two lines.

Control-Meta-X
	runs the macro ↑R MM Via Minibuffer
	Minibuffer with "MM" already there.
	Any numeric argument is passed on to the MM command.

Control-Meta-Y
	is undefined.

Control-Meta-Z
	exits from ↑R mode.

Control-Meta-[
	runs the macro ↑R Beginning of DEFUN
	Move to beginning of this or previous DEFUN.
	Leaves the mark behind, in case typed by accident.
	With a negative argument, moves forward to the beginning of a DEFUN.
	The beginning of a DEFUN is any ( in column 0.

Control-Meta-\
	runs the macro ↑R Indent Region
	Indent all lines between point and mark.
	With argument, indents each line to exactly that column.
	A line is processed if its first character is in the region.
	The mark is left after the last line processed.
	May be given a subroutine to use on each line instead of
	indenting by making the subroutine a prefix arg before a
	comma.  The subroutine should not move down a line.  It can
	expect MM & Indent to be in QK.

Control-Meta-]
	runs the macro ↑R End of DEFUN
	Move to end of this or next DEFUN.
	Leaves the mark behind, in case typed by accident.
	With argument of 2, finds end of following DEFUN.
	With argument of -1, finds end of previous DEFUN, etc.
	A DEFUN is a list whose ( falls in column 0.
	Its end is after the CRLF following its ).

Control-Meta-↑
	runs the macro ↑R Delete Indentation
	Kill CRLF and indentation at front of line.
	Leaves one space in place of them.  With argument,
	moves down one line first (killing CRLF after current line).

Control-Meta-`
	is undefined.

Control-Meta-{
	is undefined.

Control-Meta-|
	is undefined.

Control-Meta-}
	is undefined.

Control-Meta-~
	is undefined.

Control-Meta-Rubout
	runs the macro ↑R Backward Kill Sexp
	Kill last s-expression.
Commands in file EMACS:

List Commands
   C	List all user commands.
	Lists all macros of class "C", intended to be called directly
	by the user with MM.  Other macros include subroutines (class S)
	and ↑R command definitions (class "↑R").  Use List Subroutines
	and List ↑R Commands to see their names.

List Subroutines
   C	List all subroutines
	(Macros intended mainly to be called by other macros).
	Subroutines are identified by having class "S ".
	Most subroutines have names starting with "& ".

List ↑R Commands
   C	List macros intended to be ↑R-commands
	(whether or not they are actually put on any character now).
	They are macros of class "↑R " (says their documentation).

Apropos
   C	MM Apropos}FOO} Lists macros with names containing FOO.
	Spaces around the argument are NOT ignored - they must be matched
	    by spaces in the macro name.
	Q}MM ...} variables which match FOO are also listed.

Where Is
   C	List the ↑R characters that run a given macro.
	MM Where Is} ↑R Forward Word} will tell which character
	moves forward one word.  You can supply the macro as a
	numeric arg instead of the name as a string arg.

Info
   C	Read documentation files.
	Do MM Info} and it will take over from there.
	When you exit, your place is remembered for when you re-enter.
	Non-null string arg is pathname made out of Menu item names
	separated by spaces.

List One File
   C	List the macros in one file (all classes).
	The file name should be a string argument.
	Example: MMList One File}EMACS}.

List Loaded Libraries
   C	List all loaded libraries' names.

List Variables
   C	List names and values of all variables.
	Variables are referenced as q-registers (as in Q}Foo}) once
	they have been created using mm Make Variable}.
	Given a buffer as an argument, we insert the list into it.
	Given a string pointer as an argument, we list only variables
	whose names (or values, as printed) include that string.
	Any arg inhibits the initial header and the final extra CRLF.
	A nonzero precomma arg says consider only vars whose names start
	with "MM ".

Variable Apropos
   C	List variables with names containing string arg.
	Actually, matches are determined by what MM List Variables$ produces,
	so if, e.g., an $MM ...$ variable is set to a command whose
	name matches, that $MM...$ variable is listed.

Describe Macro
   C	mmDescribe}FOO} describes macro FOO.
	Prints the full name and full documentation of the specified macro,
	The name of a variable can also be specified.
	The macro to be described can also be given as a prefix arg,
	as in M.MFOO} MMDESCR}.

LISP Mode
   C	Set things up for editing LISP code.
	Puts ↑R Indent for LISP on Tab, puts tab-hacking rubout on Rubout.

MIDAS Mode
   C	Set things up for editing MIDAS code.
	C-M-N and C-M-P go to next and previous label.
	C-M-A and C-M-E go to AC and EA fields, respectively.
	C-M-D deletes next word and its terminator (eg, "FOO:").
	Paragraphs are delimited only by blank lines.

TECO Mode
   C	Set things up for editing TECO code.
	Makes Rubout the Tab-hacking Rubout.  Tab does ↑R Indent Nested.
	Loads the PURIFY library.  Makes comments be bounded by "!* " and "!".
	M-' moves forward over a TECO conditional;  M-", back.

Text Mode
   C	Set things up for editing English text.
	Puts ↑R Tab to Tab Stop on Tab.
	Makes Auto Fill not indent new lines;  says there are no comments.

Edit Tabular Text
   C	Temporarily set up for editing a table.
	Makes Auto Fill indent the next line,
	makes Tab be ↑R Tab to Tab Stop.

Edit Indented Text
   C	Temporarily set up for editing indented text.
	Good when body of text is indented, but topics appear at the margin.
	Tab is ↑R Indent Relative;  auto fill indents lines.
	Paragraphs start only with blank lines.

Fundamental Mode
   C	Return to EMACS's initial mode.

Macsyma Mode
   C	Enter a mode for editing Macsyma code.
	Modifies the delimiter dispatch, ..D, appropriate for Macsyma syntax,
	puts special rubout on rubout, sets parameters for comment hackery,
	and defines Tab to be ↑R Indent Nested.

MUDDLE Mode
   C	Enter a mode for editing MUDDLE code.
	Modifies the delimiter dispatch, ..D, appropriate for MUDDLE syntax,
	puts special rubout on rubout, sets parameters for comment hackery,
	and defines Tab to be ↑R Indent for LISP. 

PL1 Mode
   C	Set up to edit PL/1 code.

Debug Mode
   C	Enter Teco macro debugging mode.
	Reenter ↑R with two windows where buffer appears in window 1, and current macro
	level is in window 2.  Meta-D gets minibuffer which is stepped through.
	No arg splits screen in half; pos arg is line number to split screen at.

Auto Fill Mode
   C	Turn Auto Fill mode on or off.
	No arg or argument of 1 turns the mode on;
	any other arg turns it off.
	When it is on, lines are broken at the right margin
	(position controlled by Q}Fill Column}) at spaces,
	by doing a LF.

Atom Word Mode
   C	Make word commands deal with LISP atoms.
	With argument of 0, makes them not deal with LISP atoms.
	The commands affected include ↑R Forward Word, ↑R Backward Word,
	↑R Mark Word, ↑R Kill Word, and ↑R Backward Kill Word.

Overwrite Mode
   C	Enters or leaves overwrite mode.
	With argument of 1, or no argument, enters overwrite mode,
	 in which ordinary characters replace an existing character
	 instead of shoving the line over to the right.
	 In this mode, when you wish to insert without replacing,
	 Meta (non-control) characters insert the corresponding
	 un-metized characters.  To get the normal (command) effect 
	 of a Meta character, use the Metizer.
	With an argument of 0 or 4, goes back to the normal (Insert) mode.
	With an argument of 16 or -1, enters overwrite mode
	 but Meta-characters remain commands.

Indent Tabs Mode
   C	Enables or disables use of Tabs as indentation.
	An argument of 1, or no argument, enables (that is also the default).
	An explicit argument other than 1 disables.

Replace String
   C	Replace one string with another, globally.
	mmReplace}FOO}BAR} replaces each FOO after point with a BAR.
	A numeric argument means replace only FOOs which are
	surrounded by delimiter characters.  Works by calling Query Replace
	and pretending you typed a !.

Query Replace
   C	Replace string, asking about each occurrence.
	mm Query replace}FOO}BAR} displays the next FOO;  you say what to do.
	Space => replace it with BAR and show next FOO.
	Rubout => don't replace, but show next FOO.
	Comma => replace this FOO and show result, waiting for next command.
	Period => replace this FOO and exit.  Altmode => just exit.
	↑ => return to site of previous FOO (actually, jump to mark).
	↑W => kill this FOO and enter recursive ↑R.
	↑R => enter ↑R mode recursively.  ↑L => redisplay screen.
	Exclamation mark => replace all remaining FOOs without asking.
	Any other character exits and is read again.
	To restart Query Replace after exit, if it was done with a minibuffer,
	or M-X, use C-X Altmode or run the minibuffer with an argument.
	If Q}Case Replace} is nonzero, BAR will be capitalized or all caps 
	if FOO was.
	1 MM Query Replace}FOO}... will replace only FOOs that are
	bounded on both sides by delimiter characters (according to ..D).
	1,MM Query Replace}FOO}Commands} executes Commands as TECO commands
	to perform the replacement.  See the source code for Query Replace.

Keep Lines
   C	Delete all lines not containing specified string.
	Covers from point to the end of the buffer.
	Takes following string argument:  mmKeep Lines}FOO}.

Flush Lines
   C	Delete all lines containing specified string.
	Covers from point to the end of the buffer.
	Takes following string argument:  mmFlush Lines}FOO}.

Occur
   C	Displays text lines which contain a given string.
	MM Occur}FOO} shows all following lines which contain FOO.
	An arg <n> means type <n> lines before and after each occcurrence.

How Many
   C	Counts occurrences of a pattern, after point.
	The format is: MM HOW MANY}<pattern>}

Tabify
   C	Convert spaces after point to tabs.
	Groups of more than two spaces which
	could be transparently replaced with a tab are.
	Numeric arg specifies tab stop spacing;  default is 8.

Untabify
   C	Converts all tabs after point to spaces.
	Takes numeric arg saying how far apart tab stops are,
	or assumes 8 columns apart as the default.

@ TECO
   C	Make XGP listing of macros file.
	Example: 73 MM@ TECO}USRCOM >}20FG} (notice that
	73 is the page height with the font 20FG).
	20FG and 73 are actually the defaults, so that
	MM@ TECO}USRCOM}} is equivalent.  Actually runs
	@ TECO from the library EMACS;PURIFY :EJ.

Tecdoc
   C	Look up information on Teco commands.
	String arg is command, e.g. MM Tecdoc}F↑B} or MM Tecdoc}FS HPOS}.
	Represent a control character with a "↑" not followed by a space.
	The format of .INFO.;TECO ORDER is understood.  Type "?" for help.
	Actually runs the macro Tecdoc form the library EMACS;PURIFY :EJ.

Count Lines
   C	Returns the number of lines in the buffer.
	mmCount Lines}=}}  types the number.  Given arguments, they
	specify the range to be counted.

Load Library
   C	Load a pure file of macros.
	Takes filename as string arg;  default FN2 is :EJ.
	Tries both the specified (or working) directory and EMACS;.
	Runs the library's & Setup macro if there is one,
	unless Load Library was given an argument.
	Returns a pointer to the file, for macros' sake.

Run Library
   C	Run a library file macro.
	MM Run Library}<Lib name>}<Macro name>} runs the macro
	named <Macro name> out of the library <Library name>,
	which is loaded temporarily (unless it is already in core).
	If <Macro name> is null, "<ENTRY>" is used.

Kill Libraries
   C	Delete some loaded libraries from core.
	Types the name and description of the library at the top of
	the stack, and asks whether to kill it.  If you say yes,
	kills it, and asks about the next library, and so on.

List Library
   C	List contents of (not loaded) file of macros.
	Specify the filename as a string argument.  The file is
	loaded in, listed, and then flushed from core.

DIRED
   C	Edit a directory.  Runs DIRED from EMACS;DIRED :EJ.

Reap File
   C	Delete old versions of a file.
	Takes one or more string arguments, each containing a
	filespec.  Each filespec is processed individually.
	A null argument ends processing, but if the first is
	null then the default file is processed.
	Only files with a numeric FN2 are deleted.
	The number of versions kept is the numeric argument,
	or Q}File Versions Kept} if no argument (usually 2).
	If there are more than that many versions, you are told
	about the excess and asked whether to delete them.
	
	In addition, if there is a file with FN2 = XGP, @XGP,
	MEMO, or UNFASL, you are asked whether to delete it too.

Clean Directory
   C	Clean garbage out of a directory.
	Takes the directory name (with semicolon) as a string argument.
	For each FN1 in the directory, does MM Reap File (essentially),
	which offers to delete any excess old versions.
	A numeric argument is passed on to Reap File.

Compare Directories
   C	Compare directories on different ITS machines.
	Calls ↑R on a "merged" listing of the two directories.
	Takes string argument that should contain the name of the directory
	to compare, the name of the foreign machine (as a device name),
	and (optionally) a switch:  /W, /S, /D or /L.
	/W (the default) means show Whole dir (all files).
	/S means show all files that are the Same in the two dirs.
	/D means show all files that Differ.
	/L means show only Last file for given FN1-machine pair.
	Example:  MM Compare Directories} MC:LISP;/S}.

Kill Variable
   C	Undefines a variable.
	mmKill Variable}FOO} removes FOO's definition.

Make Variable
   C	Creates a variable (accessible via Q}name}).
	After doing mm Make Variable}Foo}, you can do q}Foo}.
	Returns the old value of the variable, or 0 for a new variable.

Set Variable Comment
   C	Puts a comment on a variable.
	Format:  MM Set Variable Comment}FOO}This variable is a test}.
	The comment string goes in the third word of the three words
	in ..Q used by each variable.
	A numeric argument, if any, is used to set the variable.

Alter Options
   C	↑R-mode editor of permanent options.
	Displays a table of the variables which are options,
	and their values, and puts you in ↑R mode.
	A variable is an option if its comment starts with "*".
	When you hit altmode and leave ↑R, the values are updated.

List Files
   C	Brief directory listing.
	Lists directory N entries to a line, with the following
	special characters to the left of the filenames:
		: this is a link
		! this file has not been backed up to tape yet
		* this file has really been deleted but not yet
		  closed, or is otherwise locked.
		(blank) this is a plain normal file
	Also the top line contains in order, the device being
	listed from, the directory, Free: followed by the number of
	free blocks on the device, Used: followed by the number of
	blocks this directory is taking up. 

List All Directory Names
   C	List names of all disk directories.

RMAIL
   C	Read mail.  Look under RMAIL with INFO.
	Takes RMAIL command string as string argument.
	To use the defaults, give a null command string,
	as MM RMAIL}}.  To specify an RMAIL file name,
	$ is an easier alternative to }.
	After exiting RMAIL temporarily with ↑X, MM RMAIL}}
	(null argument) will re-enter it, and a non-null
	argument to MM RMAIL} is not allowed.

Mail
   C	Mail a message, with RMAIL's M option.
	Lets you edit a message with ↑R, then send it when you
	exit the ↑R.  Use ↑G to abort the message, after which
	MM Mail with an argument will re-enter.  Put the text
	of the message after the line which says
	--Text follows this line--.  Before that line can go only
	header items, like the "From:" that is provided for you.

EDIT ..D
   C	Delimiter table editor.
	String arg is Q-register to edit.  Default is ..D.
	Response to Character: is character whose entry to edit,
	or ↑G to quit, ↑Q to quote, or Altmode to leave the macro.
	First char in delimiter table is space for delimiter
	or A for alphanumeric.  Second is space, (, ), /, |, ', or A
	for lisp syntax.  While editing an entry, Altmode exits
	to read next character to edit.

Make Dispatch String
   C	Create a dispatch string for ..D, F↑A, etc.
	First string arg should be the default entry for chars not
	otherwise specified.  Each following arg specifies one character;
	it should contain the character and up to 5 characters of entry.
	A null argument ends the call.  Example:
	MM Make Dispatch}AA}:  },  }} makes each entry "AA   "
	except those for Colon and Comma, which are made "     ".
	The resulting dispatch string is returned as a value.

View Q-Register
   C	Type out contents of any type Q Reg.
	String arg is name of the Q-register or variable.
	The interpretation as a Q-register name takes priority
	if either one would be possible.

View Buffer
   C	View the buffer with --More-- processing.
	Particularly useful on fast pseudo display terminals like Tektronix.
	Flushing the --More-- with ↑C leaves you centered in the current
	window.

View File
   C	View the contents of a file.
	The file is specified as a string argument

Get Date
   C	Insert the current time and date after point.
	A date in FS IF CDATE} format can be given as a numeric
	argument, to use instead of the current date.
	The mark is put after the inserted text, and the region
	inserted is returned so you can put this on a ↑R character.

Visit Tag Table
   C	Select a tag table file.
	A tag table file is an index to the "tags" (labels, functions, etc.)
	in one or more files of code, and allows the use of
	↑R Find Tag to go directly to any one of them.
	See also the TAGS program which makes tag table files.
	A numeric argument sets Q}Tags Find File}, which if nonzero
	makes TAGS switch files using separate buffers.

TXJ
   C	Runs the TECO XGP Justifier program.
	Not released yet.  Will eventually be documented under INFO.

Dissociated Press
   C	Print interesting random text based on text in buffer.
	Arg is number of words of continuity at jumps,
	or minus number of characters of continuity.

Edit Tab Stops
   C	Call ↑R to edit the buffer defining tab stops.
	The second line has spaces except at the tab stop columns.
	A colon indicates a tab stop to be filled to with indentation;
	a period indicates a tab stop to be filled to by copying the
	characters from the first line above the horizontal positions
	to be filled.  Uses a recursive ↑R, in which Overwrite Mode is set.

Grind Sexp
   C	Grind the sexp after the pointer.
	Uses Q}Miser Column} to decide where to start using
	"Miser" format, and Q}Fill Column} as the page width
	to aim for.

Grind MACSYMA Code
   C	Format (indent) MACYSMA code. 
	When called from ↑R mode it grinds from . to <mark>, unless it
	is given an argument in which case it does the command the cursor is
	in.  When called from regular TECO it the whole buffer if
	given no argument or <n> MACSYMA commands after the . if given
	an argument <n>

Visit File
   C	Read in a file, filing out previous file.
	File name is string argument.  Nonzero numeric arg
	inhibits auto-saving until next Visit File.
	Example:  MM Visit File} .TECO.;TECORD >}.
	A pre-comma argument sets Q}Inhibit Write}.

Find File
   C	Visit a file in its own buffer.
	If the file is already in some buffer, select that buffer.
	Otherwise, make a buffer named after the file's FN1 and
	visit the file there.
	If that buffer name is already in use, ask the user
	for a name to use instead (it's legal to specify the same one).
	A nonzero argument inhibits auto save for a newly loaded file.
	We use Q}Find File Inhibit Write} to set up Q}Inhibit Write}
	for files not previously in core.

Revert File
   C	Undo changes to a file.
	Reads back the file being edited from disk
	(or the most recent save file, if that isn't the same thing).

Write Region
   C	Write region to file.
	Specify filenames with a suffix string argument.
	Two numeric arguments may be used to specify the region,
	which othersie is from point to mark.

Write File
   C	Change buffer filenames and write out.
	Follow by filename as string argument.  "1," says called by ↑X↑S;
	inhibits calling & Set Mode Line and auto-save reinitialization.
	Also inhibits setting filenames (in case they are ←↑RSV).
	"-1," as argument inhibits updating the buffer's file cdate as well.
	If not at top level (can't switch files now),
	doesn't update anything about the current buffer,
	but does return the written file's creation date so the caller can store it.

Insert File
   C	Read file, inserting within existing text.
	File name is string argument.  Example:  MM Insert File}FOO BAR}.
	The pointer is left at the beginning, and the mark at the end.

Append to File
   C	Append region to end of specified file.
	The range to write can also be specified with numeric args.

Prepend to File
   C	Append region to start of specified file.
	The range to write can also be specified with numeric args.

Auto Save Mode
   C	Turn auto save on or off immediately on current file.
	(The default for newly visited files is Q}Auto Save Default}.)
	Zero as argument => auto save mode is turned off.
	Otherwise, arg is number of versions to keep around.
	No arg => use the default.
	A pre-comma arg is the number of characters
	     between auto saves, default 250.

Make Prefix Character
   C	Make definition for a ↑R command prefix.
	Takes as string arg the name of a q-register, and
	returns a consed up macro which, when run, will
	use the common prefix-handler in q-reg .P
	to dispatch through the q-vector assumed to be
	in the specified q-reg.  Also puts a suitable q-vector
	in that q-reg if it contains 0.  In that case, a numeric arg
	specifies the length of the q-vector (default is 96).
	Example: MMMAKE PREFIX CHARACTER}.L}  U.↑RL
	makes ↑L a prefix character with dispatch table in Q.L.

Backtrace
   C	View the frames on the macro-pdl.
	Displays one invoked macro, copied into a buffer,
	with point at the PC.  Then reads a command character:
	 Linefeed or D goes down the stack (to earlier invocations),
	 ↑ or U goes up to more recent invocations,
	 ↑R calls ↑R on what you see,  ↑L clears the screen,
	 B calls ↑R on the buffer that was being edited,
	 V displays a q-register's contents,
	 } runs a minibuffer,  X or Q exits.
	 C continues erring function.

Top Level
   C	Return to the toplevel ↑R loop.

Select Buffer
   C	Select or create buffer, given its name.
	If called from a ↑R character, read the buffer name from the terminal
	or should be given a buffer number as a numeric arg.
	As a subroutine, needs a buffer number (or buffer name pointer) as a
	prefix arg, or a buffer name as a string arg.
	If there is a buffer with that name, it is selected.
	Otherwise, a buffer with that name is created and selected.
	When a new buffer is selected the first time, if Q}Buffer Creation Hook}
	is nonzero, it is run after the buffer is selected.

List Buffers
   C	List numbers, names, files and modes of all buffers.

List Locals
   C	List a specific buffer's local variables' names.
	Takes name of buffer as a string argument.
	Default is current buffer.

Kill Buffer
   C	Kill the buffer with specified name.
	Takes name as a string (suffix) argument, or reads it from terminal.
	Alternatively, the name (as string pointer) or the buffer
	number may be given as a prefix argument.
	If the buffer has changes in it, we offer to write it out.

Make Local Variable
   C	Make a variable local to the current buffer.
	Its local value starts off the same as its global value.
	Example:  M.LFoo Variable} (since this macro lives in .L).
	"1," as arg means assume that the local doesn't exist yet.

Make Local Q-register
   C	Make a q-register local to the current buffer.
	String argument should be name of q-register, as in "A" or ".↑RA".
	"1," as arg means assume that the local doesn't exist yet.

Kill Local Variable
   C	Kill one of the current buffer's local variables.
	The global value is restored.

Kill Local Q-register
   C	Kill one of the current buffer's local q-registers.
	The global value is restored.

Save All Files
   C	Offers to write back buffers which may need it.
	For each buffer which is visiting a file and which
	has been written, you are asked whether to save it.
	A numeric arg means don't ask;  save everything.

Kill Some Buffers
   C	Offers to kill each buffer, one by one.
	If the buffer contains a modified file and you say to kill it,
	you are asked whether to write the file out first.

Rename Buffer
   C	Change the name of the current buffer.
Commands in file PURIFY:

Compress File
   C	Compress file of macros.
	Input file taken as string argument.  Output is written
	in file with FN2 of COMPRS.  If the COMPRS file already
	exists and is more recent, the operation is skipped
	(however an explicit numerical argument forces compilation anyway).

Compile One Macro
   C	Compile macro to be tried out.
	Process the buffer (or current page of it) like MM Compress File},
	then put the result into the Q-register given as a string arg.
	If the macro starts with a macro name, it will in addition
	be put in Q}MM macro name}.

Generate Library
   C	Make one :EJ file from several source files.
	Takes desired name for :EJ file as first string argument,
	followed by the names of the input files.  A null string argument
	(altmode-altmode) ends the argument list.
	The input files are all compressed (if they haven't been)
	and the COMPRS files are then purified together.
	Filename defaulting is sticky;
	input FN2's default to >, output FN2's to :EJ.
	The defaults are restored after the macro is finished.

Dump Environment
   C	Dump the current environment.
	Takes filenames as suffix string argument.
	Dumped environment will look for an init file whose
	name is taken from the variable "Editor Name";
	but a numeric argument means that ..L is already set up.

@ TECO
   C	Make XGP listing of macros file.
	Example: 73 MM@ TECO}USRCOM >}20FG} (notice that
	73 is the page height with the font 20FG).
	20FG and 73 are actually the defaults, so that
	MM@ TECO}USRCOM}} is equivalent.

Tecdoc
   C	Look up information on Teco commands.
	String arg is command, e.g. MM Tecdoc}F↑B} or MM Tecdoc}FS HPOS}.
	Represent a control character with a "↑" not followed by a space.
	Spaces elsewhere are ignored.
	The format of INFO;TECORD is understood.  Type "?" for help.

List TECO FS Flags
   C	List names of all TECO FS flags.
Commands in file TAGS:

Find Tag
   C	Visit a tag (string argument).
	Jump to the definition of the tag, switching files if necessary.
	A string pointer to the tag name may be given as a
	prefix arg.  A precomma arg says look for a second occurrence
	of the tag (search tag table from previous tag, not beginning)

? Save Tag Table
   C	Write out the tag table if it has been changed.

Next File
   C	Select the next file in the tags table.
	Each of the files described by the selected tags table
	is visited one by one if you repeat this macro.
	With an argument, we visit the first file in the tag table.
	Other macros should call using a comma'd argument ("1,").
	Then we return -1 if successful, or 0 if there were no
	more files (instead of err'ing).

Tags Search
   C	Search through all files in a Tags file.
	Sets up Control-. to continue the search to the next
	occurance of the string through all the files in the current
	tags table.  If no more files left, beeps and returns to
	original buffer.  Example: MMTags Search$FOO$$ 

Tags Query Replace
   C	Query Replace through all files in a Tags file.
	Takes two string arguments just like MM Query Replace.
	Sets up Control-. to continue the Query Replace to the next
	occurance of the string through all the files in the current
	tags table, in case you exit the Query Replace before it is finished.
	"!" means replace all the remaining instances in the current file only.
	If no more files left, beeps and returns to the original buffer.

Tags File List
   C	Insert in the buffer a list of all files.
	The list comes from the currently-visited tags file, and is
	sorted alphabetically.

List Tags
   C	List all tags in current or specified file.
	Specify file with a string arg.  All files in the tag table
	which contain that argument string will be listed.

Tags Apropos
   C	List all known tags whose names contain STRINGARG.
	MM Tags Apropos$ knows about the following languages:
	TECO, PALX, LISP, MIDAS, FAIL, MUDDLE, MACSYMA.

Tags Rescan
   C	Recompute the tag table and reload it.
Commands in file ABSTR:

Abstract File
   C	Make an abstract of some of the macros in a file.
	Takes three string arguments:  a name prefix, a documentation prefix,
	and a library file spec.  The name prefix and documentation prefixes
	are used to filter the macros in the file:  only if its name starts
	with the name prefix and its documentation with the doc prefix will
	a macro be listed.  The filespec may also be the library name of a
	currently loaded file, as printed by MM List Loaded Files.

Abstract Variables
   C	Insert names, values and comments of all variables.

Abstract Redefinitions
   C	List all ↑R commands redefined.

Wall Chart
   C	Make a wall chart describing ↑R commands.
	A wall chart is a list of ↑R command characters, in alphabetical
	order, with the names of the macros they run.  To cause prefix
	characters to be included in the wall chart, mention each prefix
	character in a string argument, as a ↑R-command q-reg name
	such as .↑RX for ↑X.  A null string argument ends the list.
Commands in file GRIND:

Grind Sexp
   C	Grind the sexp after the pointer.
	Uses Q}Miser Column} to decide where to start using "Miser" format,
	and Q}Fill Column} as the page width to aim for.
	Saves the old sexp on the kill ring.

MACSYMA Grind
   C	Format MACYSMA code.  When called from ↑R mode it grinds
	from . to <mark>, unless it is given an argument in which case
	it does the command . is in.  When called from regular TECO it
	the whole buffer if given no argument or <n> MACSYMA commands after
	the . if given an argument <n>

Grind one MACSYMA statement
   C	Grinds one MACSYMA statement.  Args delimit
	the statement (exclusive of the ; or $)



Commands in file TWENEX:

Strip SOS line numbers
   C	Remove SOS line numbers from the current buffer.
	Deletes all words with the low order bit set.

List Files
   C	Make a quick directory listing